package chapter5;
import java.util.Scanner;
/****************************************************************
 * Author：icynlau
 * Description: 十进制转二进制  幂比较
 * 		不能简单的连续 取余 和 除以2  这样循环，因为这样得到的数字是左右颠倒的
 * 		可以换个思路，从前面比较大的2的幂数向2^0比较，得到和输入的十进制数对应的正序二进制数
 * 	参考CSDN swy_swy_swy大佬
 * Date:2021/4/4
 * ***************************************************************
 */
public class exc5_37_1 {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		
		System.out.print("Enter a number in Decimal:  ");
		int number10=input.nextInt();
		
		int tmp=1;
		while(Math.pow(2, tmp)<=number10) {
			tmp++;
		}
		//得到刚好比输入的十进制数大的2的整数次幂
		tmp--;
		System.out.print("10->2  number is  ");
		for(;tmp>=0;tmp--) {
			if(Math.pow(2,tmp)<=number10) {
				System.out.print(1);
				number10-=Math.pow(2, tmp);
			}else {
				System.out.print(0);
			}
			
		}
		
	}

}
